#ifndef _NE_MIDI_PERCUSSION_H_
#define _NE_MIDI_PERCUSSION_H_

#include <neinit.h>

namespace ne
{
    enum MIDIPercussionType
    {
        // General MIDI percussion 35 ("Bass Drum 2")
        MIDI_BASSDRUM2 = 35,
        // General MIDI percussion 36 ("Bass Drum 1")
        MIDI_BASSDRUM1 = 36,
        // General MIDI percussion 37 ("Side Stick")
        MIDI_SIDESTICK = 37,
        // General MIDI percussion 38 ("Snare Drum 1")
        MIDI_SNAREDRUM1 = 38,
        // General MIDI percussion 39 ("Hand Clap")
        MIDI_HANDCLAP = 39,
        // General MIDI percussion 40 ("Snare Drum 2")
        MIDI_SNAREDRUM2 = 40,
        // General MIDI percussion 41 ("Low Tom 2")
        MIDI_LOWTOM2 = 41,
        // General MIDI percussion 42 ("Closed Hi-hat")
        MIDI_CLOSEDHIHAT = 42,
        // General MIDI percussion 43 ("Low Tom 1")
        MIDI_LOWTOM1 = 43,
        // General MIDI percussion 44 ("Pedal Hi-hat")
        MIDI_PEDALHIHAT = 44,
        // General MIDI percussion 45 ("Mid Tom 2")
        MIDI_MIDTOM2 = 45,
        // General MIDI percussion 46 ("Open Hi-hat")
        MIDI_OPENHIHAT = 46,
        // General MIDI percussion 47 ("Mid Tom 1")
        MIDI_MIDTOM1 = 47,
        // General MIDI percussion 48 ("High Tom 2")
        MIDI_HIGHTOM2 = 48,
        // General MIDI percussion 49 ("Crash Cymbal 1")
        MIDI_CRASHCYMBAL1 = 49,
        // General MIDI percussion 50 ("High Tom 1")
        MIDI_HIGHTOM1 = 50,
        // General MIDI percussion 51 ("Ride Cymbal 1")
        MIDI_RIDECYMBAL1 = 51,
        // General MIDI percussion 52 ("Chinese Cymbal")
        MIDI_CHINESECYMBAL = 52,
        // General MIDI percussion 53 ("Ride Bell")
        MIDI_RIDEBELL = 53,
        // General MIDI percussion 54 ("Tambourine")
        MIDI_TAMBOURINE = 54,
        // General MIDI percussion 55 ("Splash Cymbal")
        MIDI_SPLASHCYMBAL = 55,
        // General MIDI percussion 56 ("Cowbell")
        MIDI_COWBELL = 56,
        // General MIDI percussion 57 ("Crash Cymbal 2")
        MIDI_CRASHCYMBAL2 = 57,
        // General MIDI percussion 58 ("Vibra Slap")
        MIDI_VIBRASLAP = 58,
        // General MIDI percussion 59 ("Ride Cymbal 2")
        MIDI_RIDECYMBAL2 = 59,
        // General MIDI percussion 60 ("High Bongo")
        MIDI_HIGHBONGO = 60,
        // General MIDI percussion 61 ("Low Bongo")
        MIDI_LOWBONGO = 61,
        // General MIDI percussion 62 ("Mute High Conga")
        MIDI_MUTEHIGHCONGA = 62,
        // General MIDI percussion 63 ("Open High Conga")
        MIDI_OPENHIGHCONGA = 63,
        // General MIDI percussion 64 ("Low Conga")
        MIDI_LOWCONGA = 64,
        // General MIDI percussion 65 ("High Timbale")
        MIDI_HIGHTIMBALE = 65,
        // General MIDI percussion 66 ("Low Timbale")
        MIDI_LOWTIMBALE = 66,
        // General MIDI percussion 67 ("High Agogo")
        MIDI_HIGHAGOGO = 67,
        // General MIDI percussion 68 ("Low Agogo")
        MIDI_LOWAGOGO = 68,
        // General MIDI percussion 69 ("Cabasa")
        MIDI_CABASA = 69,
        // General MIDI percussion 70 ("Maracas")
        MIDI_MARACAS = 70,
        // General MIDI percussion 71 ("Short Whistle")
        MIDI_SHORTWHISTLE = 71,
        // General MIDI percussion 72 ("Long Whistle")
        MIDI_LONGWHISTLE = 72,
        // General MIDI percussion 73 ("Short Guiro")
        MIDI_SHORTGUIRO = 73,
        // General MIDI percussion 74 ("Long Guiro")
        MIDI_LONGGUIRO = 74,
        // General MIDI percussion 75 ("Claves")
        MIDI_CLAVES = 75,
        // General MIDI percussion 76 ("High Wood Block")
        MIDI_HIGHWOODBLOCK = 76,
        // General MIDI percussion 77 ("Low Wood Block")
        MIDI_LOWWOODBLOCK = 77,
        // General MIDI percussion 78 ("Mute Cuica")
        MIDI_MUTECUICA = 78,
        // General MIDI percussion 79 ("Open Cuica")
        MIDI_OPENCUICA = 79,
        // General MIDI percussion 80 ("Mute Triangle")
        MIDI_MUTETRIANGLE = 80,
        // General MIDI percussion 81 ("Open Triangle")
        MIDI_OPENTRIANGLE = 81
    };

    const std::string MIDIPercussionNames[47] =
    {
        "Bass Drum 2",
        "Bass Drum 1",
        "Side Stick",
        "Snare Drum 1",
        "Hand Clap",
        "Snare Drum 2",
        "Low Tom 2",
        "Closed Hi-hat",
        "Low Tom 1",
        "Pedal Hi-hat",
        "Mid Tom 2",
        "Open Hi-hat",
        "Mid Tom 1",
        "High Tom 2",
        "Crash Cymbal 1",
        "High Tom 1",
        "Ride Cymbal 1",
        "Chinese Cymbal",
        "Ride Bell",
        "Tambourine",
        "Splash Cymbal",
        "Cowbell",
        "Crash Cymbal 2",
        "Vibra Slap",
        "Ride Cymbal 2",
        "High Bongo",
        "Low Bongo",
        "Mute High Conga",
        "Open High Conga",
        "Low Conga",
        "High Timbale",
        "Low Timbale",
        "High Agogo",
        "Low Agogo",
        "Cabasa",
        "Maracas",
        "Short Whistle",
        "Long Whistle",
        "Short Guiro",
        "Long Guiro",
        "Claves",
        "High Wood Block",
        "Low Wood Block",
        "Mute Cuica",
        "Open Cuica",
        "Mute Triangle",
        "Open Triangle"
    };
}

#endif
